from configparser import ConfigParser

from interface_item.utils.logger import logger
import yaml

class MyConfigParser(ConfigParser):
    # 重写 configparser 中的 optionxform 函数，解决 .ini 文件中的 键option 自动转为小写的问题
    def __init__(self, defaults=None):
        ConfigParser.__init__(self, defaults=defaults)

    def optionxform(self, optionstr):
        return optionstr

class ReadData:
    def load_yaml(self, file_path):
        logger.debug(f"要加载的文件路径：{file_path}")
        with open(file_path, 'r', encoding="utf-8") as f:
            data = yaml.safe_load(f)
        logger.debug(f"读取到的数据：{data}")
        return data

    def save_yaml(self, content, file_path):
        logger.debug(f"正在保存文件...")
        with open(file_path, "w", encoding="utf-8") as f:
            yaml.safe_dump(content, f)
        logger.debug(f"文件保存成功...")

    def load_ini(self,file_path):
        logger.debug(f"要加载的文件路径：{file_path}")
        config = MyConfigParser()
        config.read(file_path, encoding="UTF-8")
        data = dict(config._sections)
        logger.debug(f"读取到的数据：{data}")
        return data


r_data = ReadData()

